The Internet, as well as other networks, has become more and more complicated with increased bandwidth requirements, more users, and more elaborate uses. In order to handle these increased demands new protocols and network data types have been developed. Network Processors (NPs) are well known to those of ordinary skill in the art, and are used to perform tasks such as processing network packets, processing of network data streams, and processing of network objects to accomplish specific tasks.
Network Processors (NPs) can include, in addition to other resources, a number of processing elements to process packets and a general purpose or core processor on a single die. This core processor is typically used for processing exception packets. For example, if the network processor was performing a security policy database (SPD) function, the processing element could perform a quick lookup on a cached version of the SPD to determine the operations that the packet requires (e.g., drop, bypass or apply). This cached database is relatively quick to search but only contains a portion of the overall SPD. Therefore, it is possible to have the lookup miss in the cache and require a search of the full SPD database. This search tends to be long so it does not occur in the fast path using the processing element. Instead, the associated SPD core component (CC) on the core processor is used to perform the search of the full SPD database.
A problem arises when network traffic patterns cause many exceptions of the same or similar packets to the core processor before the result of the first packet is found. These similar packets will except to the core component and cause more searches to be performed. This results in network data from other hosts being dropped. These dropped packets need to be retransmitted and reprocessed by the network processor which in turn causes excessive strain on the network.